package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.TMMcOrgInfo;

import java.util.List;

/**
 * 营销活动机构规则数据库操作接口定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/3/25 16:10
 */
public interface McOrgInfoMapper {

    /**
     * 营销活动机构信息查询接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMMcOrgInfo>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 18:58
     */
    TMMcOrgInfo selectMcOrgInfo(String instId, String mcNo) throws Exception;

    /**
     * 营销活动机构信息列表查询接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMMcOrgInfo>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/31 20:06
     */
    List<TMMcOrgInfo> selectMcOrgInfoList(String instId, String mcNo) throws Exception;

    /**
     * 营销活动机构信息列表新增接口定义
     *
     * @param mcOrgInfoList 营销活动机构信息表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:30
     */
    int insertMcOrgInfoListByBank(List<TMMcOrgInfo> mcOrgInfoList) throws Exception;

    /**
     * 营销活动机构信息列表更新接口定义
     *
     * @param mcOrgInfoList
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:30
     */
    int updateMcOrgInfoListByBank(List<TMMcOrgInfo> mcOrgInfoList) throws Exception;

    /**
     * 营销活动机构信息列表删除接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/1 21:52
     */
    int deleteMcOrgInfoListByBank(String instId, String mcNo) throws Exception;

    /**
     * 新增单条营销活动机构信息数据库操作接口定义
     *
     * @param instId    法人机构号
     * @param mcOrgInfo
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/1 23:54
     */
    int insertMcOrgInfo(String instId, TMMcOrgInfo mcOrgInfo) throws Exception;

    /**
     * 修改单条营销活动机构信息数据库操作接口定义
     *
     * @param instId    法人机构号
     * @param mcOrgInfo
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/1 23:54
     */
    int updateMcOrgInfo(String instId, TMMcOrgInfo mcOrgInfo) throws Exception;

    /**
     * 使用主键删除单条营销活动机构信息数据库操作接口定义
     *
     * @param instId
     * @param mcNo
     * @param orgId
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:30
     */
    int deleteMcOrgInfoByPrimaryKey(String instId, String mcNo, String orgId) throws Exception;

    /**
     * 使用主键查询单条营销活动机构信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @param orgId
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/1 23:54
     */
    int selectMcOrgInfoByPrimaryKey(String instId, String mcNo, String orgId) throws Exception;


    /**
     * 营销活动机构信息查询接口定义
     *
     * @param instId     法人机构号
     * @param signInstId 签约机构
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMMcOrgInfo>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/28
     */
    List<TMMcOrgInfo> selectMcOrgInfoBySignInstId(String instId, String signInstId) throws Exception;

    /**
     * 营销活动机构信息列表查询接口定义
     *
     * @param instId 法人机构号
     * @param OrgId  机构号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMMcOrgInfo>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/31 20:06
     */
    List<TMMcOrgInfo> selectMcOrgInfoListByinstIdOrgId(String instId, String OrgId) throws Exception;

    /**
     * 查询机构及其下属的所有机构
     *
     * @param instId 法人机构号
     * @param OrgId  机构号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMMcOrgInfo>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/31 20:06
     */
    List<TMMcOrgInfo> selectAllMcOrgInfoListByinstIdOrgId(String instId, String OrgId) throws Exception;

    /**
     * 查询机构及其上属的所有机构
     *
     * @param instId 法人机构号
     * @param OrgId  机构号
     * @return cc.rengu.igas.momp.common.entity.TMMcOrgInfo
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/9/10 20:03
     */
    List<TMMcOrgInfo> selectAllFrontMcOrgInfoListByInstIdOrgId(String instId, String OrgId) throws Exception;

}
